// 业务管理
import vueInstance from '@/main.js'

const getUserId = () => {
  return vueInstance.$store.getters.getUserId
}

const functionNameStatus = (reqData) => {
  // item必须是菜单的名字，否则影响根据操作项筛选日志的功能
  if (reqData.functionName === 'homeTopo') {
    return 'HOME_TOPOLOGY_MAP' // 系统首页-拓扑图
  }
  if (reqData.functionName === 'homeGis') {
    return 'HOME_GIS_MAP' // 系统首页-GIS展示
  }
  if (reqData.functionName === 'manager') {
    return 'MENU_BUSINESS_MANAGER' // 业务管理
  }
}
/**
 * 参数定义
 *
 * @param api
 *            接口地址
 * @param item
 *            操作项（必须是相应页面的菜单名称，否则操作日志页面根据操作项下拉列表会对应不上）
 * @param terminal
 *            操作命令（具体操作名称，如：登录，查询，修改设备名称等）
 * @param object
 *            操作对象（具体操作的对象名称，如：设备名，区域名等）
 * @param currentUserId
 *            当前操作用户ID
 * @param i18nKey
 *            国际化里面的key
 * @param reqData
 *            接口里携带的参数
 */

export default [
  {
    api: '/export/bizBackInfo',
    item: 'MENU_BACKUP_MANAGER', // 备用通道
    terminal: 'BULK_EXPORT', // 批量导出 全部导出
    i18nKey: 'BATCH_BACKUP_MANAGER_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.terminal = reqData.type === 'all' ? 'EXPORT_ALL' : 'BULK_EXPORT'
      this.i18nKey = reqData.type === 'all' ? 'BATCH_BACKUP_MANAGER_ALL_LOG' : 'BATCH_BACKUP_MANAGER_LOG'
      return JSON.stringify({
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/export/bizInfo',
    item: 'MENU_BUSINESS_MANAGER', // 业务管理
    terminal: 'BULK_EXPORT', // 批量导出 全部导出
    i18nKey: 'BATCH_EXPORT_BUSINESS_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.terminal = reqData.type === 'all' ? 'EXPORT_ALL' : 'BULK_EXPORT'
      this.i18nKey = reqData.type === 'all' ? 'BATCH_EXPORT_BUSINESS_ALL_LOG' : 'BATCH_EXPORT_BUSINESS_LOG'
      return JSON.stringify({
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/biz/bizFault',
    item: 'MENU_BUSINESS_MANAGER', // 业务管理
    terminal: 'SET_FAIL', // 设为故障
    i18nKey: 'SET_FAIL_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.item = functionNameStatus(reqData)
      const { bizName = '' } = reqData
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/biz/bizNormal',
    item: 'MENU_BUSINESS_MANAGER', // 业务管理
    terminal: 'TROUBLE_SOLVED', // 故障已排除
    i18nKey: 'SET_FAULT_RESOLVED_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.item = functionNameStatus(reqData)
      const { bizName = '' } = reqData
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/faultLocation/start',
    item: 'MENU_BUSINESS_MANAGER', // 业务管理
    terminal: 'FAULT_LOCATION', // 故障定位
    i18nKey: 'FAULT_LOCATION_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.item = functionNameStatus(reqData)
      const { bizName = '' } = reqData
      this.object = reqData.bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/biz/mod',
    item: 'MENU_BUSINESS_MANAGER', // 业务管理
    terminal: 'MOD_BUSINESS_COMMENCEMENT', // 修改业务配置
    i18nKey: 'MOD_BUSINESS_COMMENCEMENT_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.item = functionNameStatus(reqData)
      const { bizName = '' } = reqData
      this.object = reqData.bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/biz/delByBizId',
    item: 'MENU_BUSINESS_MANAGER', // 业务管理
    terminal: 'DELETE_BUSINESS', // 删除业务
    i18nKey: 'DELETE_BUSINESS_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.item = functionNameStatus(reqData)
      const { bizName = '' } = reqData
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/faultLocation/del',
    item: 'MENU_FAULT_LOCATION', // 故障定位
    terminal: 'DEL', // 删除故障定位
    i18nKey: 'DEL_FAULT_LOCATION_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const { bizName = '' } = reqData
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/faultLocation/restoreStatus',
    item: 'MENU_FAULT_LOCATION', // 故障定位
    terminal: 'SET_NO_FAULT', // 置为无故障
    i18nKey: 'SET_NO_FAULT_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const { bizName = '' } = reqData
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/biz/open',
    item: '',
    terminal: 'INTELLIGENT_CONNECT', // 智能开通
    i18nKey: 'INTELLIGENT_CONNECT_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const bizName = reqData.bizOpen.bizName
      this.object = bizName
      this.item = functionNameStatus(reqData)
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/biz/restore',
    item: 'MENU_BUSINESS_MANAGER', // 业务管理
    terminal: 'INTELLIGENCE_RECOVERY', // 智能恢复
    i18nKey: 'RECOVERY_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.item = functionNameStatus(reqData)
      const {
        bizName = '',
        startStationName = ''
      } = reqData
      this.object = bizName
      return JSON.stringify({
        bizName,
        startStationName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/taskGroup/bizDetect', // 开通/恢复前OTDR测试
    item: '',
    terminal: '',
    i18nKey: '',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.item = functionNameStatus(reqData)
      const {
        startRegionName = '',
        endRegionName = '',
        bizName = ''
      } = reqData
      if (reqData.actionName === 'restore') {
        this.terminal = 'INTELLIGENCE_RECOVERY_OTDR' // 智能恢复前OTDR测试
        this.i18nKey = 'RESTORE_BEFORE_OTDR_TEST'
        this.object = bizName
      }
      if (reqData.actionName === 'open') {
        this.terminal = 'INTELLIGENT_CONNECT_OTDR' // 智能开通前OTDR测试
        this.i18nKey = 'OPEN_BEFORE_OTDR_TEST'
        this.object = startRegionName + '/' + endRegionName
      }
      return JSON.stringify({
        startRegionName,
        endRegionName,
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/biz/throughTest',
    item: 'BUSINESS_MANAGEMENT', // 业务管理
    terminal: 'BIZ_FUNC_OTDR_TEST', // otdr测试
    i18nKey: 'BIZ_FUNC_OTDR_TEST_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.item = functionNameStatus(reqData)
      const { bizName = '' } = reqData
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/biz/reduction',
    item: 'BUSINESS_MANAGEMENT', // 业务管理
    terminal: 'INTELLIGENCE_RESTORE', // 智能还原
    i18nKey: 'INTELLIGENCE_RESTORE_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.item = functionNameStatus(reqData)
      const { bizName = '' } = reqData
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/biz/delReduction',
    item: 'BUSINESS_MANAGEMENT', // 业务管理
    terminal: 'CANCEL_REDUCTION', // 取消还原
    i18nKey: 'CANCEL_REDUCTION_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.item = functionNameStatus(reqData)
      const { bizName = '' } = reqData
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/backChannel/addBack',
    item: 'MENU_BACKUP_MANAGER', // 备用通道
    terminal: 'CONFIG_BIZ_BACK', // 配置备用通道
    i18nKey: 'NEW_BACKUP_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      // 先判断参数是数组还是对象
      let bizName = '' // 业务名称
      if (reqData instanceof Object) {
        bizName = reqData.bizName || ''
      }
      if (reqData instanceof Array) {
        reqData.some(i => {
          if (i['bizName']) {
            bizName = i['bizName']
            return true
          }
        })
      }
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/backChannel/add',
    item: 'MENU_BACKUP_MANAGER', // 备用通道
    terminal: 'CONFIG_BIZ_BACK', // 配置备用通道
    i18nKey: 'NEW_BACKUP_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      // 先判断参数是数组还是对象
      let bizName = '' // 业务名称
      if (reqData instanceof Object) {
        bizName = reqData.bizName || ''
      }
      if (reqData instanceof Array) {
        reqData.some(i => {
          if (i['bizName']) {
            bizName = i['bizName']
            return true
          }
        })
      }
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/backChannel/batchDel',
    item: 'MENU_BACKUP_MANAGER', // 备用通道
    terminal: 'DEL_STANDBY_CHANNEL', // 删除备用通道
    i18nKey: 'DEL_STANDBY_CHANNEL_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      // 先判断参数是数组还是对象
      let bizName = '' // 业务名称
      bizName = reqData.bizName || ''
      this.object = bizName
      return JSON.stringify({
        bizName,
        currentUserId,
        i18nKey: this.i18nKey
      })
    }
  }
]
